<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE Trustworthy #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE ScopedTypeVariables #-}</span><span>
</span><span id="line-3"></span><span>
</span><span id="line-4"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-6"></span><span class="hs-comment">-- Module      :  Data.Bitraversable</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- Copyright   :  (C) 2011-2016 Edward Kmett</span><span>
</span><span id="line-8"></span><span class="hs-comment">-- License     :  BSD-style (see the file LICENSE)</span><span>
</span><span id="line-9"></span><span class="hs-comment">--</span><span>
</span><span id="line-10"></span><span class="hs-comment">-- Maintainer  :  libraries@haskell.org</span><span>
</span><span id="line-11"></span><span class="hs-comment">-- Stability   :  provisional</span><span>
</span><span id="line-12"></span><span class="hs-comment">-- Portability :  portable</span><span>
</span><span id="line-13"></span><span class="hs-comment">--</span><span>
</span><span id="line-14"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-15"></span><span class="hs-comment">----------------------------------------------------------------------------</span><span>
</span><span id="line-16"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Data.Bitraversable</span><span>
</span><span id="line-17"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier">Bitraversable</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-18"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#bisequenceA"><span class="hs-identifier">bisequenceA</span></a></span><span>
</span><span id="line-19"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#bisequence"><span class="hs-identifier">bisequence</span></a></span><span>
</span><span id="line-20"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#bimapM"><span class="hs-identifier">bimapM</span></a></span><span>
</span><span id="line-21"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#bifor"><span class="hs-identifier">bifor</span></a></span><span>
</span><span id="line-22"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#biforM"><span class="hs-identifier">biforM</span></a></span><span>
</span><span id="line-23"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#bimapAccumL"><span class="hs-identifier">bimapAccumL</span></a></span><span>
</span><span id="line-24"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#bimapAccumR"><span class="hs-identifier">bimapAccumR</span></a></span><span>
</span><span id="line-25"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#bimapDefault"><span class="hs-identifier">bimapDefault</span></a></span><span>
</span><span id="line-26"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#bifoldMapDefault"><span class="hs-identifier">bifoldMapDefault</span></a></span><span>
</span><span id="line-27"></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-28"></span><span>
</span><span id="line-29"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Control.Applicative.html"><span class="hs-identifier">Control.Applicative</span></a></span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Data.Bifunctor.html"><span class="hs-identifier">Data.Bifunctor</span></a></span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Data.Bifoldable.html"><span class="hs-identifier">Data.Bifoldable</span></a></span><span>
</span><span id="line-32"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Data.Coerce.html"><span class="hs-identifier">Data.Coerce</span></a></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Data.Functor.Identity.html"><span class="hs-identifier">Data.Functor.Identity</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Functor.Identity.html#Identity"><span class="hs-identifier">Identity</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Data.Functor.Utils.html"><span class="hs-identifier">Data.Functor.Utils</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Functor.Utils.html#StateL"><span class="hs-identifier">StateL</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Functor.Utils.html#StateR"><span class="hs-identifier">StateR</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Generics.html"><span class="hs-identifier">GHC.Generics</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Generics.html#K1"><span class="hs-identifier">K1</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-36"></span><span>
</span><span id="line-37"></span><span class="hs-comment">-- | 'Bitraversable' identifies bifunctorial data structures whose elements can</span><span>
</span><span id="line-38"></span><span class="hs-comment">-- be traversed in order, performing 'Applicative' or 'Monad' actions at each</span><span>
</span><span id="line-39"></span><span class="hs-comment">-- element, and collecting a result structure with the same shape.</span><span>
</span><span id="line-40"></span><span class="hs-comment">--</span><span>
</span><span id="line-41"></span><span class="hs-comment">-- As opposed to 'Traversable' data structures, which have one variety of</span><span>
</span><span id="line-42"></span><span class="hs-comment">-- element on which an action can be performed, 'Bitraversable' data structures</span><span>
</span><span id="line-43"></span><span class="hs-comment">-- have two such varieties of elements.</span><span>
</span><span id="line-44"></span><span class="hs-comment">--</span><span>
</span><span id="line-45"></span><span class="hs-comment">-- A definition of 'bitraverse' must satisfy the following laws:</span><span>
</span><span id="line-46"></span><span class="hs-comment">--</span><span>
</span><span id="line-47"></span><span class="hs-comment">-- [Naturality]</span><span>
</span><span id="line-48"></span><span class="hs-comment">--   @'bitraverse' (t . f) (t . g) &#8801; t . 'bitraverse' f g@</span><span>
</span><span id="line-49"></span><span class="hs-comment">--   for every applicative transformation @t@</span><span>
</span><span id="line-50"></span><span class="hs-comment">--</span><span>
</span><span id="line-51"></span><span class="hs-comment">-- [Identity]</span><span>
</span><span id="line-52"></span><span class="hs-comment">--   @'bitraverse' 'Identity' 'Identity' &#8801; 'Identity'@</span><span>
</span><span id="line-53"></span><span class="hs-comment">--</span><span>
</span><span id="line-54"></span><span class="hs-comment">-- [Composition]</span><span>
</span><span id="line-55"></span><span class="hs-comment">--   @'Data.Functor.Compose.Compose' .</span><span>
</span><span id="line-56"></span><span class="hs-comment">--    'fmap' ('bitraverse' g1 g2) .</span><span>
</span><span id="line-57"></span><span class="hs-comment">--    'bitraverse' f1 f2</span><span>
</span><span id="line-58"></span><span class="hs-comment">--     &#8801; 'bitraverse' ('Data.Functor.Compose.Compose' . 'fmap' g1 . f1)</span><span>
</span><span id="line-59"></span><span class="hs-comment">--                  ('Data.Functor.Compose.Compose' . 'fmap' g2 . f2)@</span><span>
</span><span id="line-60"></span><span class="hs-comment">--</span><span>
</span><span id="line-61"></span><span class="hs-comment">-- where an /applicative transformation/ is a function</span><span>
</span><span id="line-62"></span><span class="hs-comment">--</span><span>
</span><span id="line-63"></span><span class="hs-comment">-- @t :: ('Applicative' f, 'Applicative' g) =&gt; f a -&gt; g a@</span><span>
</span><span id="line-64"></span><span class="hs-comment">--</span><span>
</span><span id="line-65"></span><span class="hs-comment">-- preserving the 'Applicative' operations:</span><span>
</span><span id="line-66"></span><span class="hs-comment">--</span><span>
</span><span id="line-67"></span><span class="hs-comment">-- @</span><span>
</span><span id="line-68"></span><span class="hs-comment">-- t ('pure' x) = 'pure' x</span><span>
</span><span id="line-69"></span><span class="hs-comment">-- t (f '&lt;*&gt;' x) = t f '&lt;*&gt;' t x</span><span>
</span><span id="line-70"></span><span class="hs-comment">-- @</span><span>
</span><span id="line-71"></span><span class="hs-comment">--</span><span>
</span><span id="line-72"></span><span class="hs-comment">-- and the identity functor 'Identity' and composition functors</span><span>
</span><span id="line-73"></span><span class="hs-comment">-- 'Data.Functor.Compose.Compose' are from &quot;Data.Functor.Identity&quot; and</span><span>
</span><span id="line-74"></span><span class="hs-comment">-- &quot;Data.Functor.Compose&quot;.</span><span>
</span><span id="line-75"></span><span class="hs-comment">--</span><span>
</span><span id="line-76"></span><span class="hs-comment">-- Some simple examples are 'Either' and @(,)@:</span><span>
</span><span id="line-77"></span><span class="hs-comment">--</span><span>
</span><span id="line-78"></span><span class="hs-comment">-- &gt; instance Bitraversable Either where</span><span>
</span><span id="line-79"></span><span class="hs-comment">-- &gt;   bitraverse f _ (Left x) = Left &lt;$&gt; f x</span><span>
</span><span id="line-80"></span><span class="hs-comment">-- &gt;   bitraverse _ g (Right y) = Right &lt;$&gt; g y</span><span>
</span><span id="line-81"></span><span class="hs-comment">-- &gt;</span><span>
</span><span id="line-82"></span><span class="hs-comment">-- &gt; instance Bitraversable (,) where</span><span>
</span><span id="line-83"></span><span class="hs-comment">-- &gt;   bitraverse f g (x, y) = (,) &lt;$&gt; f x &lt;*&gt; g y</span><span>
</span><span id="line-84"></span><span class="hs-comment">--</span><span>
</span><span id="line-85"></span><span class="hs-comment">-- 'Bitraversable' relates to its superclasses in the following ways:</span><span>
</span><span id="line-86"></span><span class="hs-comment">--</span><span>
</span><span id="line-87"></span><span class="hs-comment">-- @</span><span>
</span><span id="line-88"></span><span class="hs-comment">-- 'bimap' f g &#8801; 'runIdentity' . 'bitraverse' ('Identity' . f) ('Identity' . g)</span><span>
</span><span id="line-89"></span><span class="hs-comment">-- 'bifoldMap' f g = 'getConst' . 'bitraverse' ('Const' . f) ('Const' . g)</span><span>
</span><span id="line-90"></span><span class="hs-comment">-- @</span><span>
</span><span id="line-91"></span><span class="hs-comment">--</span><span>
</span><span id="line-92"></span><span class="hs-comment">-- These are available as 'bimapDefault' and 'bifoldMapDefault' respectively.</span><span>
</span><span id="line-93"></span><span class="hs-comment">--</span><span>
</span><span id="line-94"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-95"></span><span class="hs-keyword">class</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Bifunctor.html#Bifunctor"><span class="hs-identifier hs-type">Bifunctor</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570785"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Data.Bifoldable.html#Bifoldable"><span class="hs-identifier hs-type">Bifoldable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570785"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span id="Bitraversable"><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-var">Bitraversable</span></a></span></span><span> </span><span id="local-6989586621679570785"><span class="annot"><a href="#local-6989586621679570785"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-96"></span><span>  </span><span class="hs-comment">-- | Evaluates the relevant functions at each element in the structure,</span><span>
</span><span id="line-97"></span><span>  </span><span class="hs-comment">-- running the action, and builds a new structure with the same shape, using</span><span>
</span><span id="line-98"></span><span>  </span><span class="hs-comment">-- the results produced from sequencing the actions.</span><span>
</span><span id="line-99"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-100"></span><span>  </span><span class="hs-comment">-- @'bitraverse' f g &#8801; 'bisequenceA' . 'bimap' f g@</span><span>
</span><span id="line-101"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-102"></span><span>  </span><span class="hs-comment">-- For a version that ignores the results, see 'bitraverse_'.</span><span>
</span><span id="line-103"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-104"></span><span>  </span><span class="hs-comment">-- ==== __Examples__</span><span>
</span><span id="line-105"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-106"></span><span>  </span><span class="hs-comment">-- Basic usage:</span><span>
</span><span id="line-107"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-108"></span><span>  </span><span class="hs-comment">-- &gt;&gt;&gt; bitraverse listToMaybe (find odd) (Left [])</span><span>
</span><span id="line-109"></span><span>  </span><span class="hs-comment">-- Nothing</span><span>
</span><span id="line-110"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-111"></span><span>  </span><span class="hs-comment">-- &gt;&gt;&gt; bitraverse listToMaybe (find odd) (Left [1, 2, 3])</span><span>
</span><span id="line-112"></span><span>  </span><span class="hs-comment">-- Just (Left 1)</span><span>
</span><span id="line-113"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-114"></span><span>  </span><span class="hs-comment">-- &gt;&gt;&gt; bitraverse listToMaybe (find odd) (Right [4, 5])</span><span>
</span><span id="line-115"></span><span>  </span><span class="hs-comment">-- Just (Right 5)</span><span>
</span><span id="line-116"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-117"></span><span>  </span><span class="hs-comment">-- &gt;&gt;&gt; bitraverse listToMaybe (find odd) ([1, 2, 3], [4, 5])</span><span>
</span><span id="line-118"></span><span>  </span><span class="hs-comment">-- Just (1,5)</span><span>
</span><span id="line-119"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-120"></span><span>  </span><span class="hs-comment">-- &gt;&gt;&gt; bitraverse listToMaybe (find odd) ([], [4, 5])</span><span>
</span><span id="line-121"></span><span>  </span><span class="hs-comment">-- Nothing</span><span>
</span><span id="line-122"></span><span>  </span><span class="hs-comment">--</span><span>
</span><span id="line-123"></span><span>  </span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-124"></span><span>  </span><span id="local-6989586621679570777"><span id="local-6989586621679570778"><span id="local-6989586621679570779"><span id="local-6989586621679570780"><span id="local-6989586621679570781"><span id="bitraverse"><span class="annot"><a href="Data.Bitraversable.html#bitraverse"><span class="hs-identifier hs-type">bitraverse</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Base.html#Applicative"><span class="hs-identifier hs-type">Applicative</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570781"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570780"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570781"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570779"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570778"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570781"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570777"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570785"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570780"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570778"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570781"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570785"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570779"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570777"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span></span></span></span></span></span><span>
</span><span id="line-125"></span><span>  </span><span id="local-6989586621679570552"><span class="annot"><a href="Data.Bitraversable.html#bitraverse"><span class="hs-identifier hs-var hs-var">bitraverse</span></a></span><span> </span><span id="local-6989586621679570546"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570546"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679570545"><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570545"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">t (f c) (f d) -&gt; f (t c d)
forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a b.
(Bitraversable t, Applicative f) =&gt;
t (f a) (f b) -&gt; f (t a b)
</span><a href="Data.Bitraversable.html#bisequenceA"><span class="hs-identifier hs-var">bisequenceA</span></a></span><span> </span><span class="annot"><span class="annottext">(t (f c) (f d) -&gt; f (t c d))
-&gt; (t a b -&gt; t (f c) (f d)) -&gt; t a b -&gt; f (t c d)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; t (f c) (f d)
forall (p :: * -&gt; * -&gt; *) a b c d.
Bifunctor p =&gt;
(a -&gt; b) -&gt; (c -&gt; d) -&gt; p a c -&gt; p b d
</span><a href="Data.Bifunctor.html#bimap"><span class="hs-identifier hs-var">bimap</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570546"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570545"><span class="hs-identifier hs-var">g</span></a></span></span><span>
</span><span id="line-126"></span><span>
</span><span id="line-127"></span><span class="hs-comment">-- | Alias for 'bisequence'.</span><span>
</span><span id="line-128"></span><span class="hs-comment">--</span><span>
</span><span id="line-129"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-130"></span><span id="local-6989586621679570768"><span id="local-6989586621679570769"><span id="local-6989586621679570770"><span id="local-6989586621679570771"><span class="annot"><a href="Data.Bitraversable.html#bisequenceA"><span class="hs-identifier hs-type">bisequenceA</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570771"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Base.html#Applicative"><span class="hs-identifier hs-type">Applicative</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570770"><span class="hs-identifier hs-type">f</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570771"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570770"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570769"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570770"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570768"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570770"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570771"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570769"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570768"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span></span></span></span></span><span>
</span><span id="line-131"></span><span id="bisequenceA"><span class="annot"><span class="annottext">bisequenceA :: forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a b.
(Bitraversable t, Applicative f) =&gt;
t (f a) (f b) -&gt; f (t a b)
</span><a href="Data.Bitraversable.html#bisequenceA"><span class="hs-identifier hs-var hs-var">bisequenceA</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">t (f a) (f b) -&gt; f (t a b)
forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a b.
(Bitraversable t, Applicative f) =&gt;
t (f a) (f b) -&gt; f (t a b)
</span><a href="Data.Bitraversable.html#bisequence"><span class="hs-identifier hs-var">bisequence</span></a></span><span>
</span><span id="line-132"></span><span>
</span><span id="line-133"></span><span class="hs-comment">-- | Alias for 'bitraverse'.</span><span>
</span><span id="line-134"></span><span class="hs-comment">--</span><span>
</span><span id="line-135"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-136"></span><span id="local-6989586621679570750"><span id="local-6989586621679570751"><span id="local-6989586621679570752"><span id="local-6989586621679570753"><span id="local-6989586621679570754"><span id="local-6989586621679570755"><span class="annot"><a href="Data.Bitraversable.html#bimapM"><span class="hs-identifier hs-type">bimapM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570755"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Base.html#Applicative"><span class="hs-identifier hs-type">Applicative</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570754"><span class="hs-identifier hs-type">f</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-137"></span><span>       </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570753"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570754"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570752"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570751"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570754"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570750"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570755"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570753"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570751"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570754"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570755"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570752"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570750"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span></span></span></span></span></span></span><span>
</span><span id="line-138"></span><span id="bimapM"><span class="annot"><span class="annottext">bimapM :: forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a c b d.
(Bitraversable t, Applicative f) =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#bimapM"><span class="hs-identifier hs-var hs-var">bimapM</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; f (t c d)
forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a c b d.
(Bitraversable t, Applicative f) =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#bitraverse"><span class="hs-identifier hs-var">bitraverse</span></a></span><span>
</span><span id="line-139"></span><span>
</span><span id="line-140"></span><span class="hs-comment">-- | Sequences all the actions in a structure, building a new structure with</span><span>
</span><span id="line-141"></span><span class="hs-comment">-- the same shape using the results of the actions. For a version that ignores</span><span>
</span><span id="line-142"></span><span class="hs-comment">-- the results, see 'bisequence_'.</span><span>
</span><span id="line-143"></span><span class="hs-comment">--</span><span>
</span><span id="line-144"></span><span class="hs-comment">-- @'bisequence' &#8801; 'bitraverse' 'id' 'id'@</span><span>
</span><span id="line-145"></span><span class="hs-comment">--</span><span>
</span><span id="line-146"></span><span class="hs-comment">-- ==== __Examples__</span><span>
</span><span id="line-147"></span><span class="hs-comment">--</span><span>
</span><span id="line-148"></span><span class="hs-comment">-- Basic usage:</span><span>
</span><span id="line-149"></span><span class="hs-comment">--</span><span>
</span><span id="line-150"></span><span class="hs-comment">-- &gt;&gt;&gt; bisequence (Just 4, Nothing)</span><span>
</span><span id="line-151"></span><span class="hs-comment">-- Nothing</span><span>
</span><span id="line-152"></span><span class="hs-comment">--</span><span>
</span><span id="line-153"></span><span class="hs-comment">-- &gt;&gt;&gt; bisequence (Just 4, Just 5)</span><span>
</span><span id="line-154"></span><span class="hs-comment">-- Just (4,5)</span><span>
</span><span id="line-155"></span><span class="hs-comment">--</span><span>
</span><span id="line-156"></span><span class="hs-comment">-- &gt;&gt;&gt; bisequence ([1, 2, 3], [4, 5])</span><span>
</span><span id="line-157"></span><span class="hs-comment">-- [(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)]</span><span>
</span><span id="line-158"></span><span class="hs-comment">--</span><span>
</span><span id="line-159"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-160"></span><span id="local-6989586621679570531"><span id="local-6989586621679570532"><span id="local-6989586621679570533"><span id="local-6989586621679570534"><span class="annot"><a href="Data.Bitraversable.html#bisequence"><span class="hs-identifier hs-type">bisequence</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570534"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Base.html#Applicative"><span class="hs-identifier hs-type">Applicative</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570533"><span class="hs-identifier hs-type">f</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570534"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570533"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570532"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570533"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570531"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570533"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570534"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570532"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570531"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span></span></span></span></span><span>
</span><span id="line-161"></span><span id="bisequence"><span class="annot"><span class="annottext">bisequence :: forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a b.
(Bitraversable t, Applicative f) =&gt;
t (f a) (f b) -&gt; f (t a b)
</span><a href="Data.Bitraversable.html#bisequence"><span class="hs-identifier hs-var hs-var">bisequence</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(f a -&gt; f a) -&gt; (f b -&gt; f b) -&gt; t (f a) (f b) -&gt; f (t a b)
forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a c b d.
(Bitraversable t, Applicative f) =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#bitraverse"><span class="hs-identifier hs-var">bitraverse</span></a></span><span> </span><span class="annot"><span class="annottext">f a -&gt; f a
forall a. a -&gt; a
</span><a href="GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">f b -&gt; f b
forall a. a -&gt; a
</span><a href="GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span>
</span><span id="line-162"></span><span>
</span><span id="line-163"></span><span class="hs-comment">-- | @since 4.10.0.0</span><span>
</span><span id="line-164"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-165"></span><span>  </span><span id="local-6989586621679570514"><span class="annot"><span class="annottext">bitraverse :: forall (f :: * -&gt; *) a c b d.
Applicative f =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; (a, b) -&gt; f (c, d)
</span><a href="#local-6989586621679570514"><span class="hs-identifier hs-var hs-var hs-var hs-var">bitraverse</span></a></span></span><span> </span><span id="local-6989586621679570513"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570513"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679570512"><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570512"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-glyph">~</span><span class="hs-special">(</span><span id="local-6989586621679570511"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570511"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570510"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570510"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(c -&gt; d -&gt; (c, d)) -&gt; f c -&gt; f d -&gt; f (c, d)
forall (f :: * -&gt; *) a b c.
Applicative f =&gt;
(a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
</span><a href="GHC.Base.html#liftA2"><span class="hs-identifier hs-var">liftA2</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570513"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570511"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570512"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570510"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-166"></span><span>
</span><span id="line-167"></span><span class="hs-comment">-- | @since 4.10.0.0</span><span>
</span><span id="line-168"></span><span id="local-6989586621679570726"><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679570726"><span class="hs-identifier hs-type">x</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-169"></span><span>  </span><span id="local-6989586621679570498"><span class="annot"><span class="annottext">bitraverse :: forall (f :: * -&gt; *) a c b d.
Applicative f =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; (x, a, b) -&gt; f (x, c, d)
</span><a href="#local-6989586621679570498"><span class="hs-identifier hs-var hs-var hs-var hs-var">bitraverse</span></a></span></span><span> </span><span id="local-6989586621679570497"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570497"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679570496"><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570496"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-glyph">~</span><span class="hs-special">(</span><span id="local-6989586621679570495"><span class="annot"><span class="annottext">x
</span><a href="#local-6989586621679570495"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570494"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570494"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570493"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570493"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(c -&gt; d -&gt; (x, c, d)) -&gt; f c -&gt; f d -&gt; f (x, c, d)
forall (f :: * -&gt; *) a b c.
Applicative f =&gt;
(a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
</span><a href="GHC.Base.html#liftA2"><span class="hs-identifier hs-var">liftA2</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">x
</span><a href="#local-6989586621679570495"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570497"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570494"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570496"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570493"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-170"></span><span>
</span><span id="line-171"></span><span class="hs-comment">-- | @since 4.10.0.0</span><span>
</span><span id="line-172"></span><span id="local-6989586621679570716"><span id="local-6989586621679570717"><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679570717"><span class="hs-identifier hs-type">x</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570716"><span class="hs-identifier hs-type">y</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-173"></span><span>  </span><span id="local-6989586621679570482"><span class="annot"><span class="annottext">bitraverse :: forall (f :: * -&gt; *) a c b d.
Applicative f =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; (x, y, a, b) -&gt; f (x, y, c, d)
</span><a href="#local-6989586621679570482"><span class="hs-identifier hs-var hs-var hs-var hs-var">bitraverse</span></a></span></span><span> </span><span id="local-6989586621679570481"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570481"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679570480"><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570480"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-glyph">~</span><span class="hs-special">(</span><span id="local-6989586621679570479"><span class="annot"><span class="annottext">x
</span><a href="#local-6989586621679570479"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570478"><span class="annot"><span class="annottext">y
</span><a href="#local-6989586621679570478"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570477"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570477"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570476"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570476"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(c -&gt; d -&gt; (x, y, c, d)) -&gt; f c -&gt; f d -&gt; f (x, y, c, d)
forall (f :: * -&gt; *) a b c.
Applicative f =&gt;
(a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
</span><a href="GHC.Base.html#liftA2"><span class="hs-identifier hs-var">liftA2</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">x
</span><a href="#local-6989586621679570479"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">y
</span><a href="#local-6989586621679570478"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570481"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570477"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570480"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570476"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span></span></span><span>
</span><span id="line-174"></span><span>
</span><span id="line-175"></span><span class="hs-comment">-- | @since 4.10.0.0</span><span>
</span><span id="line-176"></span><span id="local-6989586621679570704"><span id="local-6989586621679570705"><span id="local-6989586621679570706"><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679570706"><span class="hs-identifier hs-type">x</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570705"><span class="hs-identifier hs-type">y</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570704"><span class="hs-identifier hs-type">z</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-177"></span><span>  </span><span id="local-6989586621679570465"><span class="annot"><span class="annottext">bitraverse :: forall (f :: * -&gt; *) a c b d.
Applicative f =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; (x, y, z, a, b) -&gt; f (x, y, z, c, d)
</span><a href="#local-6989586621679570465"><span class="hs-identifier hs-var hs-var hs-var hs-var">bitraverse</span></a></span></span><span> </span><span id="local-6989586621679570464"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570464"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679570463"><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570463"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-glyph">~</span><span class="hs-special">(</span><span id="local-6989586621679570462"><span class="annot"><span class="annottext">x
</span><a href="#local-6989586621679570462"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570461"><span class="annot"><span class="annottext">y
</span><a href="#local-6989586621679570461"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570460"><span class="annot"><span class="annottext">z
</span><a href="#local-6989586621679570460"><span class="hs-identifier hs-var">z</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570459"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570459"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570458"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570458"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(c -&gt; d -&gt; (x, y, z, c, d)) -&gt; f c -&gt; f d -&gt; f (x, y, z, c, d)
forall (f :: * -&gt; *) a b c.
Applicative f =&gt;
(a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
</span><a href="GHC.Base.html#liftA2"><span class="hs-identifier hs-var">liftA2</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">x
</span><a href="#local-6989586621679570462"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">y
</span><a href="#local-6989586621679570461"><span class="hs-identifier hs-var">y</span></a></span><span> </span><span class="annot"><span class="annottext">z
</span><a href="#local-6989586621679570460"><span class="hs-identifier hs-var">z</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570464"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570459"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570463"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570458"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span></span></span></span><span>
</span><span id="line-178"></span><span>
</span><span id="line-179"></span><span class="hs-comment">-- | @since 4.10.0.0</span><span>
</span><span id="line-180"></span><span id="local-6989586621679570690"><span id="local-6989586621679570691"><span id="local-6989586621679570692"><span id="local-6989586621679570693"><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679570693"><span class="hs-identifier hs-type">x</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570692"><span class="hs-identifier hs-type">y</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570691"><span class="hs-identifier hs-type">z</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570690"><span class="hs-identifier hs-type">w</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-181"></span><span>  </span><span id="local-6989586621679570447"><span class="annot"><span class="annottext">bitraverse :: forall (f :: * -&gt; *) a c b d.
Applicative f =&gt;
(a -&gt; f c)
-&gt; (b -&gt; f d) -&gt; (x, y, z, w, a, b) -&gt; f (x, y, z, w, c, d)
</span><a href="#local-6989586621679570447"><span class="hs-identifier hs-var hs-var hs-var hs-var">bitraverse</span></a></span></span><span> </span><span id="local-6989586621679570446"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570446"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679570445"><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570445"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-glyph">~</span><span class="hs-special">(</span><span id="local-6989586621679570444"><span class="annot"><span class="annottext">x
</span><a href="#local-6989586621679570444"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570443"><span class="annot"><span class="annottext">y
</span><a href="#local-6989586621679570443"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570442"><span class="annot"><span class="annottext">z
</span><a href="#local-6989586621679570442"><span class="hs-identifier hs-var">z</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570441"><span class="annot"><span class="annottext">w
</span><a href="#local-6989586621679570441"><span class="hs-identifier hs-var">w</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570440"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570440"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570439"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570439"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(c -&gt; d -&gt; (x, y, z, w, c, d))
-&gt; f c -&gt; f d -&gt; f (x, y, z, w, c, d)
forall (f :: * -&gt; *) a b c.
Applicative f =&gt;
(a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
</span><a href="GHC.Base.html#liftA2"><span class="hs-identifier hs-var">liftA2</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">x
</span><a href="#local-6989586621679570444"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">y
</span><a href="#local-6989586621679570443"><span class="hs-identifier hs-var">y</span></a></span><span> </span><span class="annot"><span class="annottext">z
</span><a href="#local-6989586621679570442"><span class="hs-identifier hs-var">z</span></a></span><span> </span><span class="annot"><span class="annottext">w
</span><a href="#local-6989586621679570441"><span class="hs-identifier hs-var">w</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570446"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570440"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570445"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570439"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span></span></span></span></span><span>
</span><span id="line-182"></span><span>
</span><span id="line-183"></span><span class="hs-comment">-- | @since 4.10.0.0</span><span>
</span><span id="line-184"></span><span id="local-6989586621679570674"><span id="local-6989586621679570675"><span id="local-6989586621679570676"><span id="local-6989586621679570677"><span id="local-6989586621679570678"><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679570678"><span class="hs-identifier hs-type">x</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570677"><span class="hs-identifier hs-type">y</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570676"><span class="hs-identifier hs-type">z</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570675"><span class="hs-identifier hs-type">w</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570674"><span class="hs-identifier hs-type">v</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-185"></span><span>  </span><span id="local-6989586621679570428"><span class="annot"><span class="annottext">bitraverse :: forall (f :: * -&gt; *) a c b d.
Applicative f =&gt;
(a -&gt; f c)
-&gt; (b -&gt; f d) -&gt; (x, y, z, w, v, a, b) -&gt; f (x, y, z, w, v, c, d)
</span><a href="#local-6989586621679570428"><span class="hs-identifier hs-var hs-var hs-var hs-var">bitraverse</span></a></span></span><span> </span><span id="local-6989586621679570427"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570427"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679570426"><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570426"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-glyph">~</span><span class="hs-special">(</span><span id="local-6989586621679570425"><span class="annot"><span class="annottext">x
</span><a href="#local-6989586621679570425"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570424"><span class="annot"><span class="annottext">y
</span><a href="#local-6989586621679570424"><span class="hs-identifier hs-var">y</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570423"><span class="annot"><span class="annottext">z
</span><a href="#local-6989586621679570423"><span class="hs-identifier hs-var">z</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570422"><span class="annot"><span class="annottext">w
</span><a href="#local-6989586621679570422"><span class="hs-identifier hs-var">w</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570421"><span class="annot"><span class="annottext">v
</span><a href="#local-6989586621679570421"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570420"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570420"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679570419"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570419"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-186"></span><span>    </span><span class="annot"><span class="annottext">(c -&gt; d -&gt; (x, y, z, w, v, c, d))
-&gt; f c -&gt; f d -&gt; f (x, y, z, w, v, c, d)
forall (f :: * -&gt; *) a b c.
Applicative f =&gt;
(a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
</span><a href="GHC.Base.html#liftA2"><span class="hs-identifier hs-var">liftA2</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">x
</span><a href="#local-6989586621679570425"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">y
</span><a href="#local-6989586621679570424"><span class="hs-identifier hs-var">y</span></a></span><span> </span><span class="annot"><span class="annottext">z
</span><a href="#local-6989586621679570423"><span class="hs-identifier hs-var">z</span></a></span><span> </span><span class="annot"><span class="annottext">w
</span><a href="#local-6989586621679570422"><span class="hs-identifier hs-var">w</span></a></span><span> </span><span class="annot"><span class="annottext">v
</span><a href="#local-6989586621679570421"><span class="hs-identifier hs-var">v</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570427"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570420"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570426"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570419"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span></span></span></span></span></span><span>
</span><span id="line-187"></span><span>
</span><span id="line-188"></span><span class="hs-comment">-- | @since 4.10.0.0</span><span>
</span><span id="line-189"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-190"></span><span>  </span><span id="local-6989586621679570405"><span class="annot"><span class="annottext">bitraverse :: forall (f :: * -&gt; *) a c b d.
Applicative f =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; Either a b -&gt; f (Either c d)
</span><a href="#local-6989586621679570405"><span class="hs-identifier hs-var hs-var hs-var hs-var">bitraverse</span></a></span></span><span> </span><span id="local-6989586621679570404"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570404"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="annot"><span class="annottext">b -&gt; f d
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Either.html#Left"><span class="hs-identifier hs-type">Left</span></a></span><span> </span><span id="local-6989586621679570403"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570403"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">c -&gt; Either c d
forall a b. a -&gt; Either a b
</span><a href="Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">(c -&gt; Either c d) -&gt; f c -&gt; f (Either c d)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570404"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570403"><span class="hs-identifier hs-var">a</span></a></span><span>
</span><span id="line-191"></span><span>  </span><span class="annot"><a href="Data.Bitraversable.html#bitraverse"><span class="hs-identifier hs-var">bitraverse</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; f c
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679570401"><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570401"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621679570400"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570400"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">d -&gt; Either c d
forall a b. b -&gt; Either a b
</span><a href="Data.Either.html#Right"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">(d -&gt; Either c d) -&gt; f d -&gt; f (Either c d)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570401"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679570400"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-192"></span><span>
</span><span id="line-193"></span><span class="hs-comment">-- | @since 4.10.0.0</span><span>
</span><span id="line-194"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="Data.Functor.Const.html#Const"><span class="hs-identifier hs-type">Const</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-195"></span><span>  </span><span id="local-6989586621679570388"><span class="annot"><span class="annottext">bitraverse :: forall (f :: * -&gt; *) a c b d.
Applicative f =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; Const a b -&gt; f (Const c d)
</span><a href="#local-6989586621679570388"><span class="hs-identifier hs-var hs-var hs-var hs-var">bitraverse</span></a></span></span><span> </span><span id="local-6989586621679570387"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570387"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="annot"><span class="annottext">b -&gt; f d
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Functor.Const.html#Const"><span class="hs-identifier hs-type">Const</span></a></span><span> </span><span id="local-6989586621679570385"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570385"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">c -&gt; Const c d
forall {k} a (b :: k). a -&gt; Const a b
</span><a href="Data.Functor.Const.html#Const"><span class="hs-identifier hs-var">Const</span></a></span><span> </span><span class="annot"><span class="annottext">(c -&gt; Const c d) -&gt; f c -&gt; f (Const c d)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570387"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570385"><span class="hs-identifier hs-var">a</span></a></span><span>
</span><span id="line-196"></span><span>
</span><span id="line-197"></span><span class="hs-comment">-- | @since 4.10.0.0</span><span>
</span><span id="line-198"></span><span id="local-6989586621679570647"><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Generics.html#K1"><span class="hs-identifier hs-type">K1</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570647"><span class="hs-identifier hs-type">i</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-199"></span><span>  </span><span id="local-6989586621679570373"><span class="annot"><span class="annottext">bitraverse :: forall (f :: * -&gt; *) a c b d.
Applicative f =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; K1 i a b -&gt; f (K1 i c d)
</span><a href="#local-6989586621679570373"><span class="hs-identifier hs-var hs-var hs-var hs-var">bitraverse</span></a></span></span><span> </span><span id="local-6989586621679570372"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570372"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="annot"><span class="annottext">b -&gt; f d
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Generics.html#K1"><span class="hs-identifier hs-type">K1</span></a></span><span> </span><span id="local-6989586621679570370"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570370"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">c -&gt; K1 i c d
forall k i c (p :: k). c -&gt; K1 i c p
</span><a href="GHC.Generics.html#K1"><span class="hs-identifier hs-var">K1</span></a></span><span> </span><span class="annot"><span class="annottext">(c -&gt; K1 i c d) -&gt; f c -&gt; f (K1 i c d)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570372"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570370"><span class="hs-identifier hs-var">c</span></a></span></span><span>
</span><span id="line-200"></span><span>
</span><span id="line-201"></span><span class="hs-comment">-- | 'bifor' is 'bitraverse' with the structure as the first argument. For a</span><span>
</span><span id="line-202"></span><span class="hs-comment">-- version that ignores the results, see 'bifor_'.</span><span>
</span><span id="line-203"></span><span class="hs-comment">--</span><span>
</span><span id="line-204"></span><span class="hs-comment">-- ==== __Examples__</span><span>
</span><span id="line-205"></span><span class="hs-comment">--</span><span>
</span><span id="line-206"></span><span class="hs-comment">-- Basic usage:</span><span>
</span><span id="line-207"></span><span class="hs-comment">--</span><span>
</span><span id="line-208"></span><span class="hs-comment">-- &gt;&gt;&gt; bifor (Left []) listToMaybe (find even)</span><span>
</span><span id="line-209"></span><span class="hs-comment">-- Nothing</span><span>
</span><span id="line-210"></span><span class="hs-comment">--</span><span>
</span><span id="line-211"></span><span class="hs-comment">-- &gt;&gt;&gt; bifor (Left [1, 2, 3]) listToMaybe (find even)</span><span>
</span><span id="line-212"></span><span class="hs-comment">-- Just (Left 1)</span><span>
</span><span id="line-213"></span><span class="hs-comment">--</span><span>
</span><span id="line-214"></span><span class="hs-comment">-- &gt;&gt;&gt; bifor (Right [4, 5]) listToMaybe (find even)</span><span>
</span><span id="line-215"></span><span class="hs-comment">-- Just (Right 4)</span><span>
</span><span id="line-216"></span><span class="hs-comment">--</span><span>
</span><span id="line-217"></span><span class="hs-comment">-- &gt;&gt;&gt; bifor ([1, 2, 3], [4, 5]) listToMaybe (find even)</span><span>
</span><span id="line-218"></span><span class="hs-comment">-- Just (1,4)</span><span>
</span><span id="line-219"></span><span class="hs-comment">--</span><span>
</span><span id="line-220"></span><span class="hs-comment">-- &gt;&gt;&gt; bifor ([], [4, 5]) listToMaybe (find even)</span><span>
</span><span id="line-221"></span><span class="hs-comment">-- Nothing</span><span>
</span><span id="line-222"></span><span class="hs-comment">--</span><span>
</span><span id="line-223"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-224"></span><span id="local-6989586621679570632"><span id="local-6989586621679570633"><span id="local-6989586621679570634"><span id="local-6989586621679570635"><span id="local-6989586621679570636"><span id="local-6989586621679570637"><span class="annot"><a href="Data.Bitraversable.html#bifor"><span class="hs-identifier hs-type">bifor</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570637"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Base.html#Applicative"><span class="hs-identifier hs-type">Applicative</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570636"><span class="hs-identifier hs-type">f</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-225"></span><span>      </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570637"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570635"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570634"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570635"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570636"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570633"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570634"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570636"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570632"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570636"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570637"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570633"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570632"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span></span></span></span></span></span></span><span>
</span><span id="line-226"></span><span id="bifor"><span class="annot"><span class="annottext">bifor :: forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a b c d.
(Bitraversable t, Applicative f) =&gt;
t a b -&gt; (a -&gt; f c) -&gt; (b -&gt; f d) -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#bifor"><span class="hs-identifier hs-var hs-var">bifor</span></a></span></span><span> </span><span id="local-6989586621679570365"><span class="annot"><span class="annottext">t a b
</span><a href="#local-6989586621679570365"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span id="local-6989586621679570364"><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570364"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679570363"><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570363"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; f (t c d)
forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a c b d.
(Bitraversable t, Applicative f) =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#bitraverse"><span class="hs-identifier hs-var">bitraverse</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; f c
</span><a href="#local-6989586621679570364"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">b -&gt; f d
</span><a href="#local-6989586621679570363"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">t a b
</span><a href="#local-6989586621679570365"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-227"></span><span>
</span><span id="line-228"></span><span class="hs-comment">-- | Alias for 'bifor'.</span><span>
</span><span id="line-229"></span><span class="hs-comment">--</span><span>
</span><span id="line-230"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-231"></span><span id="local-6989586621679570357"><span id="local-6989586621679570358"><span id="local-6989586621679570359"><span id="local-6989586621679570360"><span id="local-6989586621679570361"><span id="local-6989586621679570362"><span class="annot"><a href="Data.Bitraversable.html#biforM"><span class="hs-identifier hs-type">biforM</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570362"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Base.html#Applicative"><span class="hs-identifier hs-type">Applicative</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570361"><span class="hs-identifier hs-type">f</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-232"></span><span>       </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570362"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570360"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570359"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570360"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570361"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570358"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570359"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570361"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570357"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570361"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570362"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570358"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570357"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span></span></span></span></span></span></span><span>
</span><span id="line-233"></span><span id="biforM"><span class="annot"><span class="annottext">biforM :: forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a b c d.
(Bitraversable t, Applicative f) =&gt;
t a b -&gt; (a -&gt; f c) -&gt; (b -&gt; f d) -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#biforM"><span class="hs-identifier hs-var hs-var">biforM</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">t a b -&gt; (a -&gt; f c) -&gt; (b -&gt; f d) -&gt; f (t c d)
forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a b c d.
(Bitraversable t, Applicative f) =&gt;
t a b -&gt; (a -&gt; f c) -&gt; (b -&gt; f d) -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#bifor"><span class="hs-identifier hs-var">bifor</span></a></span><span>
</span><span id="line-234"></span><span>
</span><span id="line-235"></span><span class="hs-comment">-- | The 'bimapAccumL' function behaves like a combination of 'bimap' and</span><span>
</span><span id="line-236"></span><span class="hs-comment">-- 'bifoldl'; it traverses a structure from left to right, threading a state</span><span>
</span><span id="line-237"></span><span class="hs-comment">-- of type @a@ and using the given actions to compute new elements for the</span><span>
</span><span id="line-238"></span><span class="hs-comment">-- structure.</span><span>
</span><span id="line-239"></span><span class="hs-comment">--</span><span>
</span><span id="line-240"></span><span class="hs-comment">-- ==== __Examples__</span><span>
</span><span id="line-241"></span><span class="hs-comment">--</span><span>
</span><span id="line-242"></span><span class="hs-comment">-- Basic usage:</span><span>
</span><span id="line-243"></span><span class="hs-comment">--</span><span>
</span><span id="line-244"></span><span class="hs-comment">-- &gt;&gt;&gt; bimapAccumL (\acc bool -&gt; (acc + 1, show bool)) (\acc string -&gt; (acc * 2, reverse string)) 3 (True, &quot;foo&quot;)</span><span>
</span><span id="line-245"></span><span class="hs-comment">-- (8,(&quot;True&quot;,&quot;oof&quot;))</span><span>
</span><span id="line-246"></span><span class="hs-comment">--</span><span>
</span><span id="line-247"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-248"></span><span id="local-6989586621679570614"><span id="local-6989586621679570615"><span id="local-6989586621679570616"><span id="local-6989586621679570617"><span id="local-6989586621679570618"><span id="local-6989586621679570619"><span class="annot"><a href="Data.Bitraversable.html#bimapAccumL"><span class="hs-identifier hs-type">bimapAccumL</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570619"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570618"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570617"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570618"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621679570616"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570618"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570615"><span class="hs-identifier hs-type">d</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570618"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621679570614"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-249"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570618"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570619"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570617"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570615"><span class="hs-identifier hs-type">d</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570618"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621679570619"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570616"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570614"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">)</span></span></span></span></span></span></span><span>
</span><span id="line-250"></span><span id="bimapAccumL"><span class="annot"><span class="annottext">bimapAccumL :: forall (t :: * -&gt; * -&gt; *) a b c d e.
Bitraversable t =&gt;
(a -&gt; b -&gt; (a, c))
-&gt; (a -&gt; d -&gt; (a, e)) -&gt; a -&gt; t b d -&gt; (a, t c e)
</span><a href="Data.Bitraversable.html#bimapAccumL"><span class="hs-identifier hs-var hs-var">bimapAccumL</span></a></span></span><span> </span><span id="local-6989586621679570348"><span class="annot"><span class="annottext">a -&gt; b -&gt; (a, c)
</span><a href="#local-6989586621679570348"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679570347"><span class="annot"><span class="annottext">a -&gt; d -&gt; (a, e)
</span><a href="#local-6989586621679570347"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679570346"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570346"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621679570345"><span class="annot"><span class="annottext">t b d
</span><a href="#local-6989586621679570345"><span class="hs-identifier hs-var">t</span></a></span></span><span>
</span><span id="line-251"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StateL a (t c e) -&gt; a -&gt; (a, t c e)
forall s a. StateL s a -&gt; s -&gt; (s, a)
</span><a href="Data.Functor.Utils.html#runStateL"><span class="hs-identifier hs-var hs-var">runStateL</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(b -&gt; StateL a c) -&gt; (d -&gt; StateL a e) -&gt; t b d -&gt; StateL a (t c e)
forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a c b d.
(Bitraversable t, Applicative f) =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#bitraverse"><span class="hs-identifier hs-var">bitraverse</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; (a, c)) -&gt; StateL a c
forall s a. (s -&gt; (s, a)) -&gt; StateL s a
</span><a href="Data.Functor.Utils.html#StateL"><span class="hs-identifier hs-var">StateL</span></a></span><span> </span><span class="annot"><span class="annottext">((a -&gt; (a, c)) -&gt; StateL a c)
-&gt; (b -&gt; a -&gt; (a, c)) -&gt; b -&gt; StateL a c
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; b -&gt; (a, c)) -&gt; b -&gt; a -&gt; (a, c)
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; b -&gt; (a, c)
</span><a href="#local-6989586621679570348"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; (a, e)) -&gt; StateL a e
forall s a. (s -&gt; (s, a)) -&gt; StateL s a
</span><a href="Data.Functor.Utils.html#StateL"><span class="hs-identifier hs-var">StateL</span></a></span><span> </span><span class="annot"><span class="annottext">((a -&gt; (a, e)) -&gt; StateL a e)
-&gt; (d -&gt; a -&gt; (a, e)) -&gt; d -&gt; StateL a e
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; d -&gt; (a, e)) -&gt; d -&gt; a -&gt; (a, e)
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; d -&gt; (a, e)
</span><a href="#local-6989586621679570347"><span class="hs-identifier hs-var">g</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">t b d
</span><a href="#local-6989586621679570345"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570346"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-252"></span><span>
</span><span id="line-253"></span><span class="hs-comment">-- | The 'bimapAccumR' function behaves like a combination of 'bimap' and</span><span>
</span><span id="line-254"></span><span class="hs-comment">-- 'bifoldr'; it traverses a structure from right to left, threading a state</span><span>
</span><span id="line-255"></span><span class="hs-comment">-- of type @a@ and using the given actions to compute new elements for the</span><span>
</span><span id="line-256"></span><span class="hs-comment">-- structure.</span><span>
</span><span id="line-257"></span><span class="hs-comment">--</span><span>
</span><span id="line-258"></span><span class="hs-comment">-- ==== __Examples__</span><span>
</span><span id="line-259"></span><span class="hs-comment">--</span><span>
</span><span id="line-260"></span><span class="hs-comment">-- Basic usage:</span><span>
</span><span id="line-261"></span><span class="hs-comment">--</span><span>
</span><span id="line-262"></span><span class="hs-comment">-- &gt;&gt;&gt; bimapAccumR (\acc bool -&gt; (acc + 1, show bool)) (\acc string -&gt; (acc * 2, reverse string)) 3 (True, &quot;foo&quot;)</span><span>
</span><span id="line-263"></span><span class="hs-comment">-- (7,(&quot;True&quot;,&quot;oof&quot;))</span><span>
</span><span id="line-264"></span><span class="hs-comment">--</span><span>
</span><span id="line-265"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-266"></span><span id="local-6989586621679570336"><span id="local-6989586621679570337"><span id="local-6989586621679570338"><span id="local-6989586621679570339"><span id="local-6989586621679570340"><span id="local-6989586621679570341"><span class="annot"><a href="Data.Bitraversable.html#bimapAccumR"><span class="hs-identifier hs-type">bimapAccumR</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570341"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570340"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570339"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570340"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621679570338"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570340"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570337"><span class="hs-identifier hs-type">d</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570340"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621679570336"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-267"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570340"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570341"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570339"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570337"><span class="hs-identifier hs-type">d</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570340"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621679570341"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570338"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570336"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">)</span></span></span></span></span></span></span><span>
</span><span id="line-268"></span><span id="bimapAccumR"><span class="annot"><span class="annottext">bimapAccumR :: forall (t :: * -&gt; * -&gt; *) a b c d e.
Bitraversable t =&gt;
(a -&gt; b -&gt; (a, c))
-&gt; (a -&gt; d -&gt; (a, e)) -&gt; a -&gt; t b d -&gt; (a, t c e)
</span><a href="Data.Bitraversable.html#bimapAccumR"><span class="hs-identifier hs-var hs-var">bimapAccumR</span></a></span></span><span> </span><span id="local-6989586621679570331"><span class="annot"><span class="annottext">a -&gt; b -&gt; (a, c)
</span><a href="#local-6989586621679570331"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679570330"><span class="annot"><span class="annottext">a -&gt; d -&gt; (a, e)
</span><a href="#local-6989586621679570330"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679570329"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570329"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621679570328"><span class="annot"><span class="annottext">t b d
</span><a href="#local-6989586621679570328"><span class="hs-identifier hs-var">t</span></a></span></span><span>
</span><span id="line-269"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StateR a (t c e) -&gt; a -&gt; (a, t c e)
forall s a. StateR s a -&gt; s -&gt; (s, a)
</span><a href="Data.Functor.Utils.html#runStateR"><span class="hs-identifier hs-var hs-var">runStateR</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(b -&gt; StateR a c) -&gt; (d -&gt; StateR a e) -&gt; t b d -&gt; StateR a (t c e)
forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a c b d.
(Bitraversable t, Applicative f) =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#bitraverse"><span class="hs-identifier hs-var">bitraverse</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; (a, c)) -&gt; StateR a c
forall s a. (s -&gt; (s, a)) -&gt; StateR s a
</span><a href="Data.Functor.Utils.html#StateR"><span class="hs-identifier hs-var">StateR</span></a></span><span> </span><span class="annot"><span class="annottext">((a -&gt; (a, c)) -&gt; StateR a c)
-&gt; (b -&gt; a -&gt; (a, c)) -&gt; b -&gt; StateR a c
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; b -&gt; (a, c)) -&gt; b -&gt; a -&gt; (a, c)
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; b -&gt; (a, c)
</span><a href="#local-6989586621679570331"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; (a, e)) -&gt; StateR a e
forall s a. (s -&gt; (s, a)) -&gt; StateR s a
</span><a href="Data.Functor.Utils.html#StateR"><span class="hs-identifier hs-var">StateR</span></a></span><span> </span><span class="annot"><span class="annottext">((a -&gt; (a, e)) -&gt; StateR a e)
-&gt; (d -&gt; a -&gt; (a, e)) -&gt; d -&gt; StateR a e
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; d -&gt; (a, e)) -&gt; d -&gt; a -&gt; (a, e)
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; d -&gt; (a, e)
</span><a href="#local-6989586621679570330"><span class="hs-identifier hs-var">g</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">t b d
</span><a href="#local-6989586621679570328"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679570329"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-270"></span><span>
</span><span id="line-271"></span><span class="hs-comment">-- | A default definition of 'bimap' in terms of the 'Bitraversable'</span><span>
</span><span id="line-272"></span><span class="hs-comment">-- operations.</span><span>
</span><span id="line-273"></span><span class="hs-comment">--</span><span>
</span><span id="line-274"></span><span class="hs-comment">-- @'bimapDefault' f g &#8801;</span><span>
</span><span id="line-275"></span><span class="hs-comment">--     'runIdentity' . 'bitraverse' ('Identity' . f) ('Identity' . g)@</span><span>
</span><span id="line-276"></span><span class="hs-comment">--</span><span>
</span><span id="line-277"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-278"></span><span class="annot"><a href="Data.Bitraversable.html#bimapDefault"><span class="hs-identifier hs-type">bimapDefault</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621679570586"><span class="annot"><a href="#local-6989586621679570586"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span id="local-6989586621679570585"><span class="annot"><a href="#local-6989586621679570585"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span id="local-6989586621679570584"><span class="annot"><a href="#local-6989586621679570584"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span id="local-6989586621679570583"><span class="annot"><a href="#local-6989586621679570583"><span class="hs-identifier hs-type">c</span></a></span></span><span> </span><span id="local-6989586621679570582"><span class="annot"><a href="#local-6989586621679570582"><span class="hs-identifier hs-type">d</span></a></span></span><span> </span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570586"><span class="hs-identifier hs-type">t</span></a></span><span>
</span><span id="line-279"></span><span>             </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570585"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570584"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570583"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570582"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570586"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570585"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570583"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570586"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570584"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570582"><span class="hs-identifier hs-type">d</span></a></span><span>
</span><span id="line-280"></span><span class="hs-comment">-- See Note [Function coercion] in Data.Functor.Utils.</span><span>
</span><span id="line-281"></span><span id="bimapDefault"><span class="annot"><span class="annottext">bimapDefault :: forall (t :: * -&gt; * -&gt; *) a b c d.
Bitraversable t =&gt;
(a -&gt; b) -&gt; (c -&gt; d) -&gt; t a c -&gt; t b d
</span><a href="Data.Bitraversable.html#bimapDefault"><span class="hs-identifier hs-var hs-var">bimapDefault</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((a -&gt; Identity b)
 -&gt; (c -&gt; Identity d) -&gt; t a c -&gt; Identity (t b d))
-&gt; (a -&gt; b) -&gt; (c -&gt; d) -&gt; t a c -&gt; t b d
</span><a href="../../ghc-prim/src/GHC.Prim.html#coerce"><span class="hs-identifier hs-var">coerce</span></a></span><span>
</span><span id="line-282"></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; Identity b) -&gt; (c -&gt; Identity d) -&gt; t a c -&gt; Identity (t b d)
forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a c b d.
(Bitraversable t, Applicative f) =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#bitraverse"><span class="hs-identifier hs-var">bitraverse</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570585"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Data.Functor.Identity.html#Identity"><span class="hs-identifier hs-type">Identity</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570584"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-283"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570583"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Data.Functor.Identity.html#Identity"><span class="hs-identifier hs-type">Identity</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570582"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570586"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570585"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570583"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Data.Functor.Identity.html#Identity"><span class="hs-identifier hs-type">Identity</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570586"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570584"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570582"><span class="hs-identifier hs-type">d</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-284"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#bimapDefault"><span class="hs-pragma hs-type">bimapDefault</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-285"></span><span>
</span><span id="line-286"></span><span class="hs-comment">-- | A default definition of 'bifoldMap' in terms of the 'Bitraversable'</span><span>
</span><span id="line-287"></span><span class="hs-comment">-- operations.</span><span>
</span><span id="line-288"></span><span class="hs-comment">--</span><span>
</span><span id="line-289"></span><span class="hs-comment">-- @'bifoldMapDefault' f g &#8801;</span><span>
</span><span id="line-290"></span><span class="hs-comment">--    'getConst' . 'bitraverse' ('Const' . f) ('Const' . g)@</span><span>
</span><span id="line-291"></span><span class="hs-comment">--</span><span>
</span><span id="line-292"></span><span class="hs-comment">-- @since 4.10.0.0</span><span>
</span><span id="line-293"></span><span class="annot"><a href="Data.Bitraversable.html#bifoldMapDefault"><span class="hs-identifier hs-type">bifoldMapDefault</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621679570574"><span class="annot"><a href="#local-6989586621679570574"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span id="local-6989586621679570573"><span class="annot"><a href="#local-6989586621679570573"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span id="local-6989586621679570572"><span class="annot"><a href="#local-6989586621679570572"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span id="local-6989586621679570571"><span class="annot"><a href="#local-6989586621679570571"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span class="hs-operator">.</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Data.Bitraversable.html#Bitraversable"><span class="hs-identifier hs-type">Bitraversable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570574"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Base.html#Monoid"><span class="hs-identifier hs-type">Monoid</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570573"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-294"></span><span>                 </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570572"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570573"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570571"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570573"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570574"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570572"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570571"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570573"><span class="hs-identifier hs-type">m</span></a></span><span>
</span><span id="line-295"></span><span class="hs-comment">-- See Note [Function coercion] in Data.Functor.Utils.</span><span>
</span><span id="line-296"></span><span id="bifoldMapDefault"><span class="annot"><span class="annottext">bifoldMapDefault :: forall (t :: * -&gt; * -&gt; *) m a b.
(Bitraversable t, Monoid m) =&gt;
(a -&gt; m) -&gt; (b -&gt; m) -&gt; t a b -&gt; m
</span><a href="Data.Bitraversable.html#bifoldMapDefault"><span class="hs-identifier hs-var hs-var">bifoldMapDefault</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((a -&gt; Const m ())
 -&gt; (b -&gt; Const m ()) -&gt; t a b -&gt; Const m (t () ()))
-&gt; (a -&gt; m) -&gt; (b -&gt; m) -&gt; t a b -&gt; m
</span><a href="../../ghc-prim/src/GHC.Prim.html#coerce"><span class="hs-identifier hs-var">coerce</span></a></span><span>
</span><span id="line-297"></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; Const m ())
-&gt; (b -&gt; Const m ()) -&gt; t a b -&gt; Const m (t () ())
forall (t :: * -&gt; * -&gt; *) (f :: * -&gt; *) a c b d.
(Bitraversable t, Applicative f) =&gt;
(a -&gt; f c) -&gt; (b -&gt; f d) -&gt; t a b -&gt; f (t c d)
</span><a href="Data.Bitraversable.html#bitraverse"><span class="hs-identifier hs-var">bitraverse</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570572"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Data.Functor.Const.html#Const"><span class="hs-identifier hs-type">Const</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570573"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-298"></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570571"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Data.Functor.Const.html#Const"><span class="hs-identifier hs-type">Const</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570573"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679570574"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570572"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570571"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Data.Functor.Const.html#Const"><span class="hs-identifier hs-type">Const</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679570573"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679570574"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-299"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Data.Bitraversable.html#bifoldMapDefault"><span class="hs-pragma hs-type">bifoldMapDefault</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-300"></span></pre></body></html>